home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / LIBRARY / TOOLPAS2 / XANSI.PAS < prev   
Pascal/Delphi Source File  |  1990-05-11  |  1KB  |  43 lines

  1.  
  2. const
  3.    graphics = true;
  4. type
  5.    ansi_str = string[20];
  6.  
  7. function translate_ansi(xansi: ansi_str): ansi_str;
  8. type
  9.    string5 = string[5];
  10.  
  11. const
  12.    fgtab:   array['0'..'?'] of string5 =
  13.       (';30',   ';34',   ';32',   ';36',   ';31',   ';35',   ';33',   '',
  14.        ';1;30', ';1;34', ';1;32', ';1;36', ';1;31', ';1;35', ';1;33', ';1');
  15.  
  16.    bgtab:   array['0'..'?'] of string5 =
  17.       ('',  ';44',   ';42',   ';46',   ';41',   ';45',   ';43',   ';47',
  18.       ';5', ';5;44', ';5;42', ';5;46', ';5;41', ';5;45', ';5;43', ';5;47');
  19.  
  20. begin
  21.    translate_ansi := '';
  22.    if not graphics then exit;
  23.  
  24.    if xansi[3] > '9' then dec(xansi[3],7);
  25.    if xansi[4] > '9' then dec(xansi[4],7);
  26.  
  27.    if (xansi[3] < '0') or (xansi[3] > '?') then exit;
  28.    if (xansi[4] < '0') or (xansi[4] > '?') then exit;
  29.  
  30.    translate_ansi := #27'[0'+ fgtab[xansi[4]] + bgtab[xansi[3]] + 'm';
  31. end;
  32.  
  33. begin
  34. {   writeln(translate_ansi('@X07'),'normal'); }
  35.    writeln(translate_ansi('@X1F'),'white on blue');
  36.    writeln(translate_ansi('@X2E'),'yellow on green');
  37.    writeln(translate_ansi('@XF1'),'blink/blue on white');
  38. {   writeln(translate_ansi('@X2E'),'yellow on green'); }
  39.    writeln(translate_ansi('@X07'),'normal');
  40. {   writeln(translate_ansi('@X1F'),'white on blue');
  41.    writeln(translate_ansi('@X07'),'normal'); }
  42. end.
  43.